/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.co.formulas;
/**
 *
 * @author HORUS793
 */
public class Formulas {
    public static final double tasaTributacion = 0.07;
//    double periodicidad;
//    double tasaInteres ;
//    double valorFuturo ;
//    double valorPresente ;
//    double interes ;
//    double descuentoComercial ;
//    double descuentoRacional;
//    double descuentoCompuesto;
//    double valorNominal;
//    double valorEfectivo;
//    double tasaPeriodica;
//    double tasaNominal;
//    double tasaEfectivaAnual;
//    double tasaNominalAnual;
//    double tasaPeriodicaAnticipada;
//    double IPC;
//    double puntos;
//    double tasaTributación;
//    double tasaCombinada;
//    double rentabilidadNeta;
//    double rentabilidadReal;
//    double anualidad;
//    double abono;
//    double mesAbono;
//    double gradiente;
//    double baseGradiente;

    public double ValorFuturoAnualidadSimple(String _anualidad, String _periodicidad, String _tasaInteres){
        double anualidad = Double.parseDouble(_anualidad);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorFuturo = anualidad*(((2 * periodicidad) + ((tasaInteres * periodicidad) * (periodicidad - 1))) / 2);
        return valorFuturo;
    }

    public double ValorPresenteAnualidadSimple(String _anualidad, String _periodicidad, String _tasaInteres){
        double anualidad = Double.parseDouble(_anualidad);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorPresente = anualidad*(((2 * periodicidad) + ((tasaInteres * periodicidad) * (periodicidad - 1))) / (2 * (1 + (tasaInteres * periodicidad))));
        return valorPresente;
    }

    public double InteresPresenteSimple(String _valorPresente, String _tasaInteres, String _periodicidad){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorPresente = Double.parseDouble(_valorPresente);
        double interes = valorPresente * (tasaInteres * periodicidad);
        return interes;
    }

    public double ValorFuturoPresenteInteresSimple(String _valorPresente, String _interes){
        double interes = Double.parseDouble(_interes);
        double valorPresente = Double.parseDouble(_valorPresente);
        double valorFuturo = valorPresente + interes;
        return valorFuturo;
    }

    public double ValorFuturoPresenteSimple(String _valorPresente, String _tasaInteres, String _periodicidad){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorPresente = Double.parseDouble(_valorPresente);
        double valorFuturo = valorPresente * (1 + (tasaInteres * periodicidad));
        return valorFuturo;
    }

    public double ValorPresenteFuturoInteresSimple(String _valorFuturo, String _interes){
        double interes = Double.parseDouble(_interes);
        double valorFuturo = Double.parseDouble(_valorFuturo);
        double valorPresente = valorFuturo - interes;
        return valorPresente;
    }

    public double ValorPresenteFuturoSimple(String _valorFuturo, String _tasaInteres, String _periodicidad){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double valorFuturo = Double.parseDouble(_valorFuturo);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorPresente =  valorFuturo / (1 + (tasaInteres * periodicidad));
        return valorPresente;
    }
    public double DescuentoComercialNominal(String _valorNominal, String _tasaInteres, String _periodicidad){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorNominal = Double.parseDouble(_valorNominal);
        double descuentoComercial = valorNominal * tasaInteres * periodicidad;
        return descuentoComercial;
    }

    public double ValorEfectivoNominalComercial(String _valorNominal, String _tasaInteres, String _periodicidad){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorNominal = Double.parseDouble(_valorNominal);
        double ValorEfectivo = valorNominal*(1- ( tasaInteres * periodicidad));
        return ValorEfectivo;
    }

    public double ValorNominalEfectivoComercial(String _valorEfectivo, String _tasaInteres, String _periodicidad){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorEfectivo = Double.parseDouble(_valorEfectivo);
        double valorNominal = valorEfectivo / (1 - (tasaInteres * periodicidad));
        return valorNominal;
    }

    public double DescuentoRacionalEfectivo(String _valorEfectivo, String _tasaInteres, String _periodicidad){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorEfectivo = Double.parseDouble(_valorEfectivo);
        double descuentoRacional = valorEfectivo * tasaInteres * periodicidad;
        return descuentoRacional;
    }

    public double DescuentoRacionalComercial(String _descuentoComercial, String _tasaInteres, String _periodicidad){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double descuentoComercial = Double.parseDouble(_descuentoComercial);
        double descuentoRacional = descuentoComercial / (1 + (tasaInteres * periodicidad));
        return descuentoRacional;
    }

    public double ValorEfectivoNominalRacionalRacional(String _valorNominal, String _descuentoRacional){
        double valorNominal = Double.parseDouble(_valorNominal);
        double descuentoRacional = Double.parseDouble(_descuentoRacional);
        double valorEfectivo = valorNominal - descuentoRacional;
        return valorEfectivo;
    }

    public double ValorNominalEfectivoRacional(String _valorEfectivo, String _tasaInteres, String _periodicidad){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorEfectivo = Double.parseDouble(_valorEfectivo);
        double valorNominal = valorEfectivo * (1 + (tasaInteres * periodicidad));
        return valorNominal;
    }

    public double ValorFuturoPresenteCompuesto(String _valorPresente, String _tasaInteres, String _periodicidad){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorPresente = Double.parseDouble(_valorPresente);
        double valorFuturo = valorPresente * (Math.pow((1 + tasaInteres), periodicidad));
        return valorFuturo;
    }

    public double InteresPresenteCompuesto(String _valorPresente, String _tasaInteres, String _periodicidad){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorPresente = Double.parseDouble(_valorPresente);
        double interes = valorPresente * tasaInteres * (Math.pow((1 + tasaInteres), (periodicidad - 1)));
        return interes;
    }

    public double ValorPresenteFuturoCompuesto(String _valorFuturo, String _tasaInteres, String _periodicidad){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double valorFuturo = Double.parseDouble(_valorFuturo);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorPresente = valorFuturo / (Math.pow((1 + (tasaInteres * periodicidad)), periodicidad));
        return valorPresente;
    }

    public double DescuentoCompuestoNominalEfectivo(String _valorNominal, String _valorEfectivo){
        double valorNominal = Double.parseDouble(_valorNominal);
        double valorEfectivo = Double.parseDouble(_valorEfectivo);
        double descuentoCompuesto = valorNominal - valorEfectivo;
        return descuentoCompuesto;
    }

    public double DescuentoCompuestoNominal(String _valorNominal, String _tasaInteres, String _periodicidad){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorNominal = Double.parseDouble(_valorNominal);
        double descuentoCompuesto = valorNominal * (1 - (1 / Math.pow((1 + tasaInteres), periodicidad)));
        return descuentoCompuesto;
    }

    public double ValorNominalEfectivoCompuesto(String _valorEfectivo, String _tasaInteres, String _periodicidad){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorEfectivo = Double.parseDouble(_valorEfectivo);
        double valorNominal = valorEfectivo * Math.pow((1 + tasaInteres), periodicidad);
        return valorNominal;
    }

    public double ValorEfectivoNominalCompuesto(String _valorNominal, String _tasaInteres, String _periodicidad){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorNominal = Double.parseDouble(_valorNominal);
        double valorEfectivo = valorNominal / Math.pow((1 + tasaInteres), periodicidad);
        return valorEfectivo;
    }

    public double TasaPeriodicaNominalVencida(String _tasaNominal, String _periodicidad){
        double tasaNominal = Double.parseDouble(_tasaNominal);
        double periodicidad = Double.parseDouble(_periodicidad);
        double tasaPeriodica = tasaNominal / periodicidad;
        return tasaPeriodica;
    }

    public double TasaPeriodicaEfectivaVencida(String _tasaEfectiva, String _periodicidad){
        double periodicidad = Double.parseDouble(_periodicidad);
        double tasaEfectiva = Double.parseDouble(_tasaEfectiva);
        double tasaPeriodica = Math.pow((1 + tasaEfectiva), (1 / periodicidad)) - 1;
        return tasaPeriodica;
    }

    public double TasaPeriodicaPeriodicaVencida(String _periodicidadX, String _tasaPeriodicaY, String _periodicidadY){
        double periodicidadX = Double.parseDouble(_periodicidadX);
        double periodicidadY = Double.parseDouble(_periodicidadY);
        double tasaPeriodicaY = Double.parseDouble(_tasaPeriodicaY);
        double tasaPeriodicaX = Math.pow((1 + tasaPeriodicaY), (periodicidadX / periodicidadY)) - 1;
        return tasaPeriodicaX;
    }

    public double TasaNominalPeriodicaVencida(String _tasaPeriodica, String _periodicidad){
        double periodicidad = Double.parseDouble(_periodicidad);
        double tasaPeriodica = Double.parseDouble(_tasaPeriodica);
        double tasaNominal = tasaPeriodica * periodicidad;
        return tasaNominal;
    }

    public double TasaNominalEfectivaVencida(String _periodicidad, String _tasaEfectiva){
        double periodicidad = Double.parseDouble(_periodicidad);
        double tasaEfectiva = Double.parseDouble(_tasaEfectiva);
        double tasaNominal = periodicidad * (Math.pow((1 + tasaEfectiva), (1 / periodicidad)) - 1);
        return tasaNominal;
    }

    public double TasaEfectivaNominalVencida(String _tasaNominal, String _periodicidad){
        double periodicidad = Double.parseDouble(_periodicidad);
        double tasaNominal = Double.parseDouble(_tasaNominal);
        double tasaEfectiva = Math.pow((1 + (tasaNominal / periodicidad)), periodicidad) - 1;
        return tasaEfectiva;
    }

    public double TasaEfectivaPeriodicaVencida(String _tasaPeriodica, String _periodicidad){
        double periodicidad = Double.parseDouble(_periodicidad);
        double tasaPeriodica = Double.parseDouble(_tasaPeriodica);
        double tasaEfectiva = Math.pow((1 + (tasaPeriodica / periodicidad)), periodicidad) - 1;
        return tasaEfectiva;
    }

    public double TasaPeriodicaNominalAnticipada(String _tasaNominal, String _periodicidad){
        double tasaNominal = Double.parseDouble(_tasaNominal);
        double periodicidad = Double.parseDouble(_periodicidad);
        double tasaPeriodica = tasaNominal / periodicidad;
        return tasaPeriodica;
    }

    public double TasaPeriodicaPeriodicaAnticipada(String _tasaPeriodicaAnt, String _periodicidad){
        double periodicidad = Double.parseDouble(_periodicidad);
        double tasaPeriodicaAnt = Double.parseDouble(_tasaPeriodicaAnt);
        double tasaPeriodicaVen = (tasaPeriodicaAnt / Math.pow((1 - tasaPeriodicaAnt), periodicidad)) - 1;
        return tasaPeriodicaVen;
    }

    public double TasaEfectivaPeriodicaAnticipada(String _tasaPeriodica, String _periodicidad){
        double periodicidad = Double.parseDouble(_periodicidad);
        double tasaPeriodica = Double.parseDouble(_tasaPeriodica);
        double tasaEfectiva = (1 / (Math.pow((1 - tasaPeriodica), periodicidad))) - 1;
        return tasaEfectiva;
    }

    public double TasaEfectivaIPC(String _IPC, String _puntos){
        double IPC = Double.parseDouble(_IPC);
        double puntos = Double.parseDouble(_puntos);
        double tasaEfectiva = ((1 + IPC)* (1 + puntos)) -1;
        return tasaEfectiva;
    }
    
    public double RentabilidadNeta(String _tasaEfectiva){
        double tasaEfectiva = Double.parseDouble(_tasaEfectiva);
        double rentabilidadNeta = tasaEfectiva * (1 - tasaTributacion);
        return rentabilidadNeta;
    }

    public double RentabilidadReal(String _rentabilidadNeta, String _IPC){
        double IPC = Double.parseDouble(_IPC);
        double rentabilidadNeta = Double.parseDouble(_rentabilidadNeta);
        double rentabilidadReal = (rentabilidadNeta - IPC)/ (1 + IPC);
        return rentabilidadReal;
    }

    public double ValorPresenteAnualidadPeriodoVencida(String _anualidad, String _tasaInteres, String _periodicidad){
        double anualidad = Double.parseDouble(_anualidad);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorPresente = anualidad * ((Math.pow((1 + tasaInteres), periodicidad) - 1)/(Math.pow((1 + tasaInteres), periodicidad) * tasaInteres));
        return valorPresente;
    }

    public double ValorPresenteDosAnualidadVencida(String _anualidad1, String _anualidad2, String _tasaInteres, String _periodicidad){
        double anualidad1 = Double.parseDouble(_anualidad1);
        double anualidad2 = Double.parseDouble(_anualidad2);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorPresente = (anualidad1 * ((Math.pow((1 + tasaInteres), periodicidad) - 1)/(Math.pow((1 + tasaInteres), periodicidad) * tasaInteres))) + (anualidad2 * ((Math.pow((1 + tasaInteres), periodicidad) - 1)/(Math.pow((1 + tasaInteres), periodicidad) * tasaInteres)));
        return valorPresente;
    }

    public double ValorFuturoAnualidadVencida(String _anualidad, String _tasaInteres, String _periodicidad){
        double anualidad = Double.parseDouble(_anualidad);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorFututo = anualidad * ((Math.pow((1 + tasaInteres), periodicidad) - 1) / tasaInteres);
        return valorFututo;
    }

    public double AnualidadPresenteVencida(String _valorPresente, String _tasaInteres, String _periodicidad){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorPresente = Double.parseDouble(_valorPresente);
        double anualidad = valorPresente * ((Math.pow((1 + tasaInteres), periodicidad) * tasaInteres) / (Math.pow(1 + tasaInteres, periodicidad)-1));
        return anualidad;
    }

    public double AnualidadFuturoPeriodoVencida(String _valorFuturo, String _tasaInteres, String _periodicidad){
        double valorFuturo = Double.parseDouble(_valorFuturo);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double anualidad = valorFuturo * tasaInteres / (Math.pow((1 + tasaInteres), periodicidad) - 1);
        return anualidad;
    }
    
    public double ValorPresenteAnualidadAnticipada(String _anualidad, String _tasaInteres, String _periodicidad){
        double anualidad = Double.parseDouble(_anualidad);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorPresente = anualidad * (1 + ((Math.pow((1 + tasaInteres), (periodicidad - 1)) - 1) / (Math.pow((1 + tasaInteres), (periodicidad - 1)) * tasaInteres)));
        return valorPresente;
    }

    public double ValorFuturoAnualidadAnticipada(String _anualidad, String _tasaInteres, String _periodicidad){
        double anualidad = Double.parseDouble(_anualidad);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorFututo = anualidad * (((Math.pow((1 + tasaInteres), (periodicidad + 1)) - 1) / tasaInteres) - 1);
        return valorFututo;
    }

    public double AnualidadPresenteAnticipada(String _valorPresente, String _tasaInteres, String _periodicidad){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorPresente = Double.parseDouble(_valorPresente);
        double anualidad = valorPresente /(1 + ((Math.pow((1 + tasaInteres), (periodicidad - 1)) - 1) / (Math.pow((1 + tasaInteres), (periodicidad - 1)) * tasaInteres)));
        return anualidad;
    }

    public double AnualidadFuturoAnticipada(String _valorFuturo, String _tasaInteres, String _periodicidad){
        double valorFuturo = Double.parseDouble(_valorFuturo);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double anualidad = valorFuturo / (((Math.pow((1 + tasaInteres), (periodicidad + 1)) - 1) / tasaInteres) - 1);
        return anualidad;
    }

    public double PresenteAnualidadGlobalProgramada(String _anualidad, String _tasaInteres, String _periodicidad, String _abono, String _mesAbono){
        double abono = Double.parseDouble(_abono);
        double mesAbono = Double.parseDouble(_mesAbono);
        double anualidad = Double.parseDouble(_anualidad);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorPresente = anualidad * ((Math.pow((1 + tasaInteres), periodicidad) - 1) / (Math.pow((1 + tasaInteres), periodicidad) * tasaInteres)) + (abono / Math.pow((1 + tasaInteres), mesAbono));
        return valorPresente;
    }

    public double ValorPresenteAnualidadGlobalNoProgramada(String _anualidad, String _tasaInteres, String _periodicidad, String _mesAbono){
        double mesAbono = Double.parseDouble(_mesAbono);
        double anualidad = Double.parseDouble(_anualidad);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorPresente = anualidad * ((Math.pow((1 + tasaInteres), (periodicidad - mesAbono)) - 1) / (Math.pow((1 + tasaInteres), (periodicidad - mesAbono)) * tasaInteres));
        return valorPresente;
    }

    public double AnualidadPresenteGlobalNoProgramada(String _valorPresente, String _tasaInteres, String _periodicidad, String _abono, String _mesAbono){
        double abono = Double.parseDouble(_abono);
        double mesAbono = Double.parseDouble(_mesAbono);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorPresente = Double.parseDouble(_valorPresente);
        double anualidad = (valorPresente - abono) * ((Math.pow((1 + tasaInteres), (periodicidad - mesAbono)) * tasaInteres) / (Math.pow((1 + tasaInteres), (periodicidad - mesAbono)) - 1));
        return anualidad;
    }
    
    public double AnualidadIndefinida(String _valorPresente, String _tasaInteres){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double valorPresente = Double.parseDouble(_valorPresente);
        double anualidad = valorPresente * tasaInteres;
        return anualidad;
    }

    public double AnualidadCuotaGradiente(String _baseGradiente, String _periodicidad, String _gradiente){
        double gradiente = Double.parseDouble(_gradiente);
        double periodicidad = Double.parseDouble(_periodicidad);
        double baseGradiente = Double.parseDouble(_baseGradiente);
        double anualidad = baseGradiente + ((periodicidad - 1 ) * gradiente);
        return anualidad;
    }

    public double PresenteGradienteCreciente(String _baseGradiente, String _tasaInteres, String _periodicidad, String _gradiente){
        double gradiente = Double.parseDouble(_gradiente);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double baseGradiente = Double.parseDouble(_baseGradiente);
        double valorPresente = baseGradiente * ((Math.pow((1 + tasaInteres) , periodicidad) - 1 ) / (Math.pow((1 + tasaInteres), periodicidad)* tasaInteres)) + (gradiente / tasaInteres) * ((Math.pow((1 + tasaInteres), periodicidad) - 1)/ (Math.pow((1 + tasaInteres), periodicidad) * tasaInteres) - (periodicidad / Math.pow((1 + tasaInteres), periodicidad)));
        return valorPresente;
    }
    
    public double PresenteGradienteDecreciente(String _baseGradiente, String _tasaInteres, String _periodicidad, String _gradiente){
        double gradiente = Double.parseDouble(_gradiente);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double baseGradiente = Double.parseDouble(_baseGradiente);
        double valorPresente = baseGradiente * ((Math.pow((1 + tasaInteres) , periodicidad) - 1 ) / (Math.pow((1 + tasaInteres), periodicidad)* tasaInteres)) - (gradiente / tasaInteres) * ((Math.pow((1 + tasaInteres), periodicidad) - 1)/ (Math.pow((1 + tasaInteres), periodicidad) * tasaInteres) - (periodicidad / Math.pow((1 + tasaInteres), periodicidad)));
        return valorPresente;
    }

    public double AnualidadGradienteAConstante(String _gradiente, String _tasaInteres, String _periodicidad){
        double gradiente = Double.parseDouble(_gradiente);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double anulidad = (gradiente / tasaInteres) * (1 - ((periodicidad * tasaInteres) / (Math.pow((1 + tasaInteres), periodicidad) - 1)));
        return anulidad;
    }

    public double PresenteGradienteIndefinidaCreciente(String _baseGradiente, String _tasaInteres, String _gradiente){
        double gradiente = Double.parseDouble(_gradiente);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double baseGradiente = Double.parseDouble(_baseGradiente);
        double valorPresente = (baseGradiente / tasaInteres) + (gradiente / Math.pow(tasaInteres, 2));
        return valorPresente;
    }

    public double AnualidadGradienteGeométrico(String _baseGradiente, String _gradiente, String _periodicidad){
        double gradiente = Double.parseDouble(_gradiente);
        double periodicidad = Double.parseDouble(_periodicidad);
        double baseGradiente = Double.parseDouble(_baseGradiente);
        double anualidad = baseGradiente * (Math.pow((1 + gradiente), (periodicidad - 1)));
        return anualidad;
    }

    public double PresenteGradienteGeometricoDiferentes(String _baseGradiente, String _gradiente, String _tasaInteres, String _periodicidad){
        double gradiente = Double.parseDouble(_gradiente);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double baseGradiente = Double.parseDouble(_baseGradiente);
        double valorPresente = baseGradiente * ((Math.pow(((1 + gradiente) / (1 + tasaInteres)), periodicidad) - 1) / (gradiente - tasaInteres));
        return valorPresente;
    }

    public double PresenteGradienteGeometricoIguales(String _baseGradiente, String _periodicidad, String _tasaInteres){
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double baseGradiente = Double.parseDouble(_baseGradiente);
        double valorPresente = (baseGradiente * periodicidad) / (1 + tasaInteres);
        return valorPresente;
    }

    public double BaseGradientePresenteCreciente(String _valorPresente, String _gradiente, String _tasaInteres, String _periodicidad){
        double gradiente = Double.parseDouble(_gradiente);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorPresente = Double.parseDouble(_valorPresente);
        double baseGradiente = (valorPresente * (gradiente - tasaInteres)) / (Math.pow(((1 + gradiente)/(1 + tasaInteres)), periodicidad) - 1);
        return baseGradiente;
    }

    public double BaseGradientePresenteDecreciente(String _valorPresente, String _gradiente, String _tasaInteres, String _periodicidad){
        double gradiente = Double.parseDouble(_gradiente);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double periodicidad = Double.parseDouble(_periodicidad);
        double valorPresente = Double.parseDouble(_valorPresente);
        double baseGradiente = (valorPresente * (gradiente + tasaInteres)) / (1 - Math.pow(((1 - gradiente)/(1 - tasaInteres)), periodicidad));
        return baseGradiente;
    }

    public double ValorPresenteIndefinido(String _baseGradiente, String _tasaInteres, String _gradiente){
        double gradiente = Double.parseDouble(_gradiente);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double baseGradiente = Double.parseDouble(_baseGradiente);
        double valorPresente = baseGradiente / (tasaInteres - gradiente);
        return valorPresente;
    }

    public double InteresFecha(String _anualidad, String _tasaInteres, String _mesTotal, String _mesPedido){
        double mesTotal = Double.parseDouble(_mesTotal);
        double anualidad = Double.parseDouble(_anualidad);
        double mesPedido = Double.parseDouble(_mesPedido);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double valorPresente = anualidad * ((Math.pow((1 + tasaInteres), (mesTotal - (mesPedido - 1))) - 1) / (Math.pow((1 + tasaInteres), (mesTotal - (mesPedido - 1))) * tasaInteres));
        double interes = valorPresente * tasaInteres;
        return interes;
    }

    public double InteresesFechasAmbasIncluidas(String _valorPresente, String _anualidad, String _tasaInteres, String _mesTotal, String _mesInf, String _mesSup){
        double mesTotal = Double.parseDouble(_mesTotal);
        double anualidad = Double.parseDouble(_anualidad);
        double mesInf = Double.parseDouble(_mesInf);
        double mesSup = Double.parseDouble(_mesSup);
        double tasaInteres = Double.parseDouble(_tasaInteres);
        double valorPresente = Double.parseDouble(_valorPresente);

        double valorPresenteInf = anualidad * ((Math.pow((1 + tasaInteres), (mesTotal - (mesInf - 1))) - 1) / (Math.pow((1 + tasaInteres), (mesTotal - (mesInf - 1))) * tasaInteres));
        double amortizacionInf = valorPresente - valorPresenteInf;
        double pagadoInf = mesInf * anualidad;
        double interesInf = pagadoInf - amortizacionInf;

        double valorPresenteSup = anualidad * ((Math.pow((1 + tasaInteres), (mesTotal - mesSup)) - 1) / (Math.pow((1 + tasaInteres), (mesTotal - mesSup)) * tasaInteres));
        double amortizacionSup = valorPresente - valorPresenteSup;
        double pagadoSup = mesSup * anualidad;
        double interesSup = pagadoSup - amortizacionSup;

        double interes = interesSup - interesInf;
        return interes;
    }
}